Interprocess communication (IPC) is frequently desired in computing environments. To this extent, numerous approaches have been used to facilitate IPC. For example, two processes can read/write data to a portion of memory that is shared or a common file. However, in this approach, extensive coordination is required between the processes in order to handle data storage/file usage and data management (e.g., mutual exclusion). In another approach, a pipe (e.g., a named pipe) or message queue can be used to direct the output of one process to an input of another process. However, in this approach, data can only be communicated asynchronously and each pipe only supports communications in one direction.
The UNIX® operating system (UNIX is a registered trademark of The Open Group in the United States and other countries) provides another approach that can be used for a specific type of IPC. In particular, a single process can create a pair of connected, but unnamed sockets (i.e., a socket pair) using the socketpair( ) function. The socket pair is similar to a pipe, however it is bidirectional. The process then can create a new process (e.g., a child process using fork( )) and provide one of the connected sockets to the new process. Both the original and new processes can communicate with one another using the linked sockets. However, this approach requires both processes to be related (e.g., parent/child) and cannot be used to enable two mutually exclusive processes to communicate.
Many applications, such as legacy applications, include an ability to communicate with other processes via a network. In this case, messages from a first process generally are sent outside of the computing device to one or more network devices and routed to a computing device executing the second process. However, when both applications/processes are executing on the same computing device, such a message routing is inefficient and adds message traffic to the network.
In view of the foregoing, a need exists to overcome one or more of the deficiencies in the related art.